From 3734cbe43d041560553b122dde59f133ee34e2f1 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Tue, 20 Sep 2005 13:07:10 +0000 Subject: [PATCH] Put_page on vmx_set_cr0 for multiple protected/real mode switch. Signed-off-by: Yunhong Jiang Signed-off-by: Chengyuan Li --- xen/arch/x86/vmx.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/xen/arch/x86/vmx.c b/xen/arch/x86/vmx.c index c6705b15f0..da1016cf92 100644 --- a/xen/arch/x86/vmx.c +++ b/xen/arch/x86/vmx.c @@ -1100,6 +1100,11 @@ static int vmx_set_cr0(unsigned long value) d->arch.arch_vmx.cpu_cr3, mfn); } + if(!((value & X86_CR0_PE) && (value & X86_CR0_PG)) && paging_enabled) + if(d->arch.arch_vmx.cpu_cr3) + put_page(pfn_to_page(get_mfn_from_pfn( + d->arch.arch_vmx.cpu_cr3 >> PAGE_SHIFT))); + /* * VMX does not implement real-mode virtualization. We emulate * real-mode by performing a world switch to VMXAssist whenever -- 2.30.2